package com.woniuxy.enjoylife.utils;

import java.util.Properties;

import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

/**
 * 邮件发送工具类
 */
public class EmailUtil {
    //发送者邮箱
    private static final String SENDADDRESS = "3086366919@qq.com";
    //授权码
    private static final String POP3_CODE = "joyaszkgcjktddbe";

    public static boolean send(String email,String code,int type) {
        try{
            //设置初始化参数
            Properties properties = new Properties();
            //认证邮箱
            properties.put("mail.user", SENDADDRESS);
            //授权码：此处用任何一个授权码都可以
            //采用不同的授权码时邮箱服务器会使用不同的协议发送邮件
            properties.put("mail.password", POP3_CODE);
            //是否认证
            properties.put("mail.smtp.auth", true);
            //协议
            properties.put("mail.transport.protocol", "smtp");
            //邮箱服务器
            properties.put("mail.stmp.host", "smtp.qq.com");
            //邮箱服务器端口号
            properties.put("maill.smtp.port", "25");

            //创建session
            Session session = Session.getDefaultInstance(properties);

            //创建消息
            Message message = new MimeMessage(session);
            //发送人
            message.setFrom(new InternetAddress(SENDADDRESS));
            //收件人
            message.addRecipients(Message.RecipientType.TO, InternetAddress.parse(email));
            //邮件主题
            message.setSubject("悦生活验证码");
            //邮件类型判断（1.发送注册的验证码，2.发送更改密码的验证码）
            String email_content = "";
            if(type == 1){
                //发送注册的验证码的邮件内容
                email_content = "<div style='text-align: center;'>"+
                        "<h2>您的悦生活账号即将创建成功！</h2>"+
                        "<h4>请在注册页面输入以下验证码：(30秒后过期，过期请重新发送！)</h4>"+
                        "<h3>"+code+"</h3><br>"+
                        "<h4>注意：1.请不要将验证码告诉其他人，这是您注册的重要凭证！</h4></div>";
            }else if(type == 2){
                //发送更改密码的验证码的邮件内容
                email_content = "<div style='text-align: center;'>"+
                        "<h2>您的悦生活账号正在修改密码！</h2>"+
                        "<h4>如果并非本人操作，请忽略此验证码，并与客服联系：(60秒后过期，过期请重新发送！)</h4>"+
                        "<h3>"+code+"</h3><br>"+
                        "<h4>注意：1.请不要将验证码告诉其他人，这是您注册的重要凭证！</h4></div>";
            }
            //设置字符编码
            message.setContent(email_content, "text/html;charset=UTF-8");
            //保存更改
            message.saveChanges();

            //设置协议并链接到服务器
            Transport transport = session.getTransport("smtp");
            transport.connect(
                    properties.getProperty("mail.stmp.host"),
                    properties.getProperty("mail.user"),
                    properties.getProperty("mail.password"));
            //发送邮件
            transport.sendMessage(message, message.getAllRecipients());
            //关闭
            transport.close();
            //发送成功，返回true
            return true;
        }catch(Exception e){
            e.printStackTrace();
            //如果有任何异常发送失败，返回false
            return false;
        }
    }
}

